Method and system for multiple column/row data sorting in a display table

ABSTRACT

A method and system for multiple column/row data sorting includes a process for multiple column/row data sorting whereby a user is provided with a simple and visually intuitive interface for prioritizing the progressive sorting of data displayed in data tables by multiple columns or rows.

BACKGROUND

Many computing system implemented data and/or word processing programs,applications, processes, and/or systems utilize data tables for theprocessing and displaying of data. A typical data table includes dataarranged in columns and rows with the columns or rows having headingsindicating the subject matter/content displayed in the column or row.When viewing and/or interacting with data arranged in tables it is oftenhighly desirable to sort the data based on the subject matter/content inthe columns and/or rows.

As an example, assume a listing of employees is presented in a datatable. For this example, further assume that the data table ispartitioned into columns including a first column showing the employee'slast name, a second column showing employee's first name, and a thirdcolumn showing the employee's birth date. When viewing, or interacting,with data table it may often be highly desirable to the user to sort theemployees by last name. Typically, this would be accomplished through auser interface and user interface device whereby the user woulddesignate the first column, i.e., the employee's last name column, asthe sort subject matter/content. Typically this would be accomplished byclicking on an icon, or the column heading of the column, the userwishes to sort by, and then selecting, or entering, a sort order or, insome cases, the order might be automatically selected, such as analphabetical listing A to Z or Z to A.

In many instances however it would be equally desirable to, in additionto sorting by the last name, to sort the data table by the secondcolumn, or the first name, as well. For instance, continuing with theexample discussed above, a user may wish to sort by last name to see allthe employees having a last name Smith grouped together and then theuser may further wish refine the display to see all the employees havingthe last name Smith and the first named John. In addition, a user maywish to see all the employees named John Smith listed by descending, orascending, birth date. This would involve, in this example, sorting bythe third column, employee birth date, in addition to the first twocolumns, employee last name and employee first name.

Currently, many applications utilizing data tables, and providing a userinterface with a data table, only provide for sorting by a singlecolumn, or row, at a time. Consequently using many currently availableapplications, in the example above, the user could first short by thefirst column and see a listing of all employees with the last nameSmith. However, once the user wanted to view all employees sorted byfirst name, such as John, the sorting by last name would be discardedand the user would be left with a listing of all employees having afirst name John, including those named John Smith, but also thoseemployees having other last names. Likewise, continuing with the exampleabove, if the user were to sort by birth date, the sorting by last name,the sorting by first name, or any other previous sorting, would bediscarded and the user would be presented with a listing of allemployees by ascending, or descending, birth date.

SUMMARY

In accordance with one embodiment, a method and system for multiplecolumn/row data sorting includes a process for multiple column/row datasorting whereby a user is provided with a simple and visually intuitiveinterface for prioritizing the sorting of data displayed in data tablesby multiple columns or rows.

In accordance with one embodiment, a sort icon well is provided on adisplay screen of a computing system as part of a user interface withdata displayed in a data table. In one embodiment, the icon wellincludes individual sort icons each associated with an order for sortingdata. For instance, in one embodiment, the icon well includes, but isnot limited to: a primary sort icon, for designating a first or primarysort column or row; a secondary sort icon, for designating a second orsecondary sort column or row; a tertiary sort icon, for designating athird or tertiary sort column or row; etc.

In one embodiment, a user selects one of the sort icons using a userinterface device, such as a movable interface symbol, for example acursor, and then drags and drops the selected sort icon to the column orrow, or a column or row header, the user desires to designate with thesort icon. The user then repeats the process, using the other sort iconsin the sort icon well, to designate a sort priority for all of thecolumns and/or rows desired. In one embodiment, the data is then sortedaccording to the priority designated by the sort icons as moved to thevarious columns or rows. For instance, the data is first sorted by thesubject matter of the column to which the primary sort icon was moved.Then, while still maintaining the display of the primary sort, the datais further sorted by the subject matter of the column to which thesecondary sort icon was moved. Then, while still maintaining the displayof the primary sort and the secondary sort, the data is further sortedby the subject matter of the column to which the tertiary sort icon wasmoved, and so on. In one embodiment, the sort icons can be moved betweenrows and columns and/or back into the sort icon well.

In accordance with one embodiment, a movable interface symbol, such as acursor, is provided as part of an interface for interacting with dataarranged in a data table. In one embodiment, the performance of a firstdesignated key or command sequence through a user interface devicetransforms the movable interface symbol into a movable primary sortsymbol. In one embodiment, a first column or row that the user wishes todesignate as the primary sort column or row is then selected with themovable primary sort symbol, in one embodiment by clicking on a mouse,thereby designating the first column or row as the primary sort columnor row. Then, in one embodiment, the performance of a second designatedkey or command sequence through the user interface device transforms themovable interface symbol into a movable secondary sort symbol. In oneembodiment, a second column or row that the user wishes to designate asthe secondary sort column or row is then selected with the movablesecondary sort symbol, thereby designating the second column or row asthe secondary sort column or row. Then, in one embodiment, theperformance of a third designated key or command sequence through theuser interface device transforms the movable interface symbol into amovable tertiary sort symbol. In one embodiment, a third column or rowthat the user wishes to designate as the tertiary sort column or row isthen selected with the movable tertiary sort symbol thereby designatingthe third column or row as the tertiary sort column or row. In oneembodiment the process described above is repeated as many times, andfor as many levels of sort, as the user desires.

In one embodiment, the data is then sorted according to the prioritydesignated. For instance, the data is sorted by the subject matter ofthe column/row designated the primary sort column/row. Then, while stillmaintaining the display of the primary sort, the data is further sortedby the subject matter of the column/row designated the secondary sortcolumn/row. Then, while still maintaining the display of the primarysort and the secondary sort, the data is further sorted by the subjectmatter of the column/row designated the tertiary sort column/row, and soon.

Using the method and system for multiple column/row data sorting, and aprocess for multiple column/row data sorting, disclosed herein, a useris provided with the capability to sort data arranged in data tables bymultiple columns or rows simultaneously, and in a progressively refinedmanner. In addition, using the method and system for multiple column/rowdata sorting, and a process for multiple column/row data sorting,disclosed herein, the user is provided to capability to prioritize thesorting of the data by multiple columns/rows using a simple and visuallyintuitive user interface.

As discussed in more detail below, using the below embodiments, withlittle or no modification and/or user input, there is considerableflexibility, adaptability, and opportunity for customization to meet thespecific needs of various users under numerous circumstances.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary hardware architecture forimplementing one embodiment;

FIG. 2 is a flow chart depicting a process for multiple column/row datasorting in accordance with one embodiment;

FIG. 3A shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3B shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3C shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3D shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3E shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3F shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3G shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3H shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3I shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3J shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 3K shows once embodiment of a user interface screen, including adata table and sort icon well, in accordance with one embodiment;

FIG. 4 is a flow chart depicting a process for multiple column/row datasorting in accordance with one embodiment;

FIG. 5A shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment;

FIG. 5B shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment;

FIG. 5C shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment;

FIG. 5D shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment;

FIG. 5E shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment;

FIG. 5F shows once embodiment of a user interface screen, including adata table and movable interface/sort symbol, in accordance with oneembodiment; and

FIG. 5G shows once embodiment of an interface screen, including a datatable and movable interface/sort symbol, in accordance with oneembodiment.

Common reference numerals are used throughout the FIG.s and the detaileddescription to indicate like elements. One skilled in the art willreadily recognize that the above FIG.s are examples and that otherarchitectures, modes of operation, orders of operation andelements/functions can be provided and implemented without departingfrom the characteristics and features of the invention, as set forth inthe claims.

DETAILED DESCRIPTION

Embodiments will now be discussed with reference to the accompanyingFIG.s, which depict one or more exemplary embodiments. Embodiments maybe embodied in many different forms and should not be construed aslimited to the embodiments set forth herein, shown in the FIG.s, and/ordescribed below. Rather, these exemplary embodiments are provided toallow a complete disclosure that conveys the principles of theinvention, as set forth in the claims, to those of skill in the art.

In accordance with one embodiment, a method and system for multiplecolumn/row data sorting includes a process for multiple column/row datasorting whereby a user is provided with a simple and visually intuitiveinterface for prioritizing the sorting of data displayed in data tablesby multiple columns or rows.

In accordance with one embodiment, a sort icon well is provided on adisplay screen of a computing system as part of a user interface withdata displayed in a data table. In one embodiment, the icon wellincludes individual sort icons each associated with an order for sortingdata. For instance, in one embodiment, the icon well includes, but isnot limited to: a primary sort icon, for designating a first or primarysort column or row; a secondary sort icon, for designating a second orsecondary sort column or row; a tertiary sort icon, for designating athird or tertiary sort column or row; etc.

In one embodiment, a user selects one of the sort icons using a userinterface device, such as a movable interface symbol, for example acursor, and then drags and drops the selected sort icon to the column orrow, or a column or row header, the user desires to designate with thesort icon. The user then repeats the process, using the other sort iconsin the sort icon well, to designate a sort priority for all of thecolumns and/or rows desired. In one embodiment, the data is then sortedaccording to the priority designated by the sort icons as moved to thevarious columns or rows. For instance, the data is first sorted by thesubject matter of the column to which the primary sort icon was moved.Then, while still maintaining the display of the primary sort, the datais further sorted by the subject matter of the column to which thesecondary sort icon was moved. Then, while still maintaining the displayof the primary sort and the secondary sort, the data is further sortedby the subject matter of the column to which the tertiary sort icon wasmoved, and so on. In one embodiment, the sort icons can be moved betweenrows and columns and/or back into the sort icon well.

In accordance with one embodiment, a movable interface symbol, such as acursor, is provided as part of an interface for interacting with dataarranged in a data table. In one embodiment, the performance of a firstdesignated key or command sequence through a user interface devicetransforms the movable interface symbol into a movable primary sortsymbol. In one embodiment, a first column or row that the user wishes todesignate as the primary sort column or row is then selected with themovable primary sort symbol, in one embodiment by clicking on a mouse,thereby designating the first column or row as the primary sort columnor row. Then, in one embodiment, the performance of a second designatedkey or command sequence through the user interface device transforms themovable interface symbol into a movable secondary sort symbol. In oneembodiment, a second column or row that the user wishes to designate asthe secondary sort column or row is then selected with the movablesecondary sort symbol, thereby designating the second column or row asthe secondary sort column or row. Then, in one embodiment, theperformance of a third designated key or command sequence through theuser interface device transforms the movable interface symbol into amovable tertiary sort symbol. In one embodiment, a third column or rowthat the user wishes to designate as the tertiary sort column or row isthen selected with the movable tertiary sort symbol thereby designatingthe third column or row as the tertiary sort column or row. In oneembodiment the process described above is repeated as many times, andfor as many levels of sort, as the user desires.

In one embodiment, the data is then sorted according to the prioritydesignated. For instance, the data is for sorted by the subject matterof the column/row designated the primary sort column/row. Then, whilestill maintaining the display of the primary sort, the data is furthersorted by the subject matter of the column/row designated the secondarysort column/row. Then, while still maintaining the display of theprimary sort and the secondary sort, the data is further sorted by thesubject matter of the column/row designated the tertiary sortcolumn/row, and so on.

Using the method and system for multiple column/row data sorting, and aprocess for multiple column/row data sorting, disclosed herein, a useris provided with the capability to sort data arranged in data tables bymultiple columns or rows simultaneously, and in a progressively refinedmanner. In addition, using the method and system for multiple column/rowdata sorting, and a process for multiple column/row data sorting,disclosed herein, the user is provided the capability to prioritize thesorting of the data by multiple columns/rows using a simple and visuallyintuitive user interface.

Some embodiments are implemented in a computing system including aconventional computing system running a conventional operating systemsuch as those distributed by Microsoft Corporation of Redmond Wash.;Apple Computer Inc. of Cupertino Calif.; any Unix operating system; anyLinux operating system; the Palm OS series of operating systems; or anyother operating system designed to generally manage operations on acomputing system, whether known at the time of filing or as developedlater. Some embodiments are implemented in a mobile computing systemrunning mobile operating systems such as Symbian® OS, Windows® Mobile,or any other operating system designed to generally manage operations ona mobile computing system, whether known at the time of filing or asdeveloped later. As described more fully below, embodiments can beimplemented on computing systems other than a conventional computingsystem such as, for example, a personal digital assistant, a cell phone,or other computing system capable of processing computer readable data,whether known at the time of filing or as developed later. Computingsystems also include those in which one or more computing resources(hardware or software) are located remotely and accessed via network,such as a Local Area Network (LAN), Wide Area Network (WAN), a publicnetwork, such as the Internet, a private network, a combination ofnetwork types, a computing system bus, or other electronic medium inwhich data may be exchanged between one computing system and one or moreother computing system(s), whether known at the time of filing or asdeveloped later. Embodiments may be included as add-on software forexisting software programs, packages or applications, and embodimentsmay be a feature of an application that is bundled with a computingsystem or sold separately. Some embodiments may also be implemented asfunctionality embedded in hardware devices and systems.

Output generated by one or more embodiments can be displayed on adisplay screen, transmitted to a remote device, stored on any database,computer server or other storage mechanism, printed, or used in anyother way. In addition, in some embodiments, processes and/or systemsdescribed herein may make use of input provided to the computer deviceimplementing a process and/or application, discussed herein, via userinterface devices such as a keyboard, mouse, touchpad, or any otherdevice capable of providing user input to a computing system or fortranslating user actions into computing system operations, whether knownat the time of filing or as developed later.

Hardware System Architecture

FIG. 1 is a block diagram of exemplary hardware architecture forimplementing one embodiment of a process for multiple column/row datasorting, such as processes for multiple column/row data sorting 200 and400, discussed below, that includes: a computing system 100; a serversystem 120; and a database 170, all operatively connected by a network130.

As seen in FIG. 1, computing system 100 typically includes a centralprocessing unit (CPU) 101, hereinafter processor 101, an input/output(I/O) interface 105, and a memory system 103, including cache memory103A. In one embodiment, memory system 103 includes all or part of aprocess for multiple column/row data sorting.

Computing system 100 may further include standard user interface devicessuch as a keyboard 107, a mouse 111, a printer 109, and a display device115, as well as, one or more standard input/output (I/O) devices 113,such as a compact disk (CD) or DVD drive, floppy disk drive, or otherdigital or waveform port, or other device capable of inputting data to,and outputting data from, computing system 100, whether known at thetime of filing or as later developed. As discussed in more detail below,in one embodiment, a process for multiple column/row data sorting can beloaded, in whole, or in part, into computing system 100 via I/O device113, such as from a CD, DVD or floppy disk containing all, or part, of aprocess for multiple column/row data sorting.

Also shown in FIG. 1 is database 170. In one embodiment, database 170 isa designated server system or computing system, or a designated portionof a server system or computing system, such as computing systems 100and 120. In one embodiment, database 170 is a dedicated mass storagedevice implemented in software, hardware, or a combination of hardwareand software. In one embodiment, database 170 is a web-based function.As discussed in more detail below, in one embodiment, a process formultiple column/row data sorting is stored in whole, or in part, indatabase 170.

In one embodiment, computing system 100 and database 170, are coupled toa server system 120 by network 130. Server system 120 typically includesa server system display device 125, a server system processor 121, aserver system memory 123, and a server system network interface 122. Asdiscussed in more detail below, in one embodiment, a process formultiple column/row data sorting is stored in whole, or in part, inserver system 120.

Network 130 can be any network or network system that is of interest toa user such as a Local Area Network (LAN), a Wide Area Network (WAN), apublic network, such as the Internet, a private network, a combinationof network types, or other network capable of allowing communicationbetween two or more computing systems, whether known at the time offiling or as later developed. In various embodiments, server systemnetwork interface 122 and I/O interface 105 include analog modems,digital modems, a network interface card, a broadband connection, or anyother means for communicably coupling computing system 100, database170, and server system 120, via network 130, whether known at the timeof filing or as later developed.

Those of skill in the art will readily recognize that the componentsshown in FIG. 1, such as computing system 100, database 170, serversystem 120, and their respective components, are shown for illustrativepurposes only and that architectures with more or fewer components canimplement, and benefit from, a process for multiple column/row datasorting, such as processes for multiple column/row data sorting 200 and400, discussed below. Moreover, one or more components of computingsystem 100, database 170, and server system 120 may be located remotelyfrom their respective system and accessed via network, as discussedherein. In addition, the particular type of, and configuration of,computing systems 100, database 170, and server system 120 are notrelevant.

As discussed in more detail below, in one embodiment, a process formultiple column/row data sorting is stored in whole, or in part, inmemory system 103 and/or cache memory 103A, of computing system 100,and/or in server memory system 123 of server system 120 and/or indatabase 170, and executed on computing system 100. As used herein, amemory refers to a volatile memory, a non-volatile memory, or anycombination of the two.

Although a process for multiple column/row data sorting can sometimes bereferred to herein, alternatively, as a process, an application, amodule, a program, a component of a software system, a component of asoftware package, a component of a parent system, or a feature of aparent system, this terminology is illustrative only. In someembodiments, a process for multiple column/row data sorting is capableof being called from an application or the operating system. In oneembodiment, an application or program is generally defined to be anyexecutable code. Moreover, those of skill in the art will understandthat when it is said that an application or an operation takes someaction, the action is the result of executing one or more instructionsby a processor, such as processor 101, server system processor 121,multiple processors such as processor 101 and server system processor121, and/or one or more cores of a multi-core processor system. In oneembodiment, execution of a process for multiple column/row data sortingby processor 101 or server system processor 121, results in theoperations of an agent computer process (not shown) and/or a rulecomputer process (not shown).

In one embodiment, a process for multiple column/row data sorting is acomputer application or process implemented and/or run and/or stored, infull, or in part, in, or on, a computer program product. Herein, acomputer program product comprises a medium configured to store and/ortransport computer readable code, whether known at the time of filing oras later developed. Some examples of computer program products areCD-ROM discs, DVDs, ROM cards, floppy discs, magnetic tapes, computerhard drives, servers on a network, such as server system 120 of FIG. 1,and signals transmitted over a network, such as network 130 of FIG. 1,or other media or process capable of delivering computer readable datarepresenting computer readable code, whether known at the time of filingor as later developed. This medium may belong to a computing system,such as computing system 100 of FIG. 1, described above. However, themedium also may be removed from the computing system.

For example, all, or part, of a process for multiple column/row datasorting may be stored in a memory that is physically located in alocation, such as server system memory 123, or database 170, of FIG. 1,different from a computing system, such as computing system 100 of FIG.1, utilizing a process for multiple column/row data sorting. In oneembodiment, all, or part, of a process for multiple column/row datasorting may be stored in a memory that is physically located, separatefrom the computing system's processor(s), such as processor 101 of FIG.1, and the computing system processor(s) can be coupled to the memory ina client-server system, such as server system 120 of FIG. 1, or,alternatively, via connection to another computer, such as computingsystem 100 of FIG. 1, via modems and analog lines, digital interfacesand a digital carrier line, or wireless or cellular connections.

In one embodiment, the computing systems and/or server system, such ascomputing system 100 and/or server system 120 of FIG. 1, running and/orutilizing and/or storing all, or part, of a process for multiplecolumn/row data sorting is a portable computer, a workstation, a two-waypager, a cellular telephone, a smart phone, a digital wirelesstelephone, a personal digital assistant, a server computer, an Internetappliance, or any other device that includes components that can executeall, or part, of a process for multiple column/row data sorting inaccordance with at least one of the embodiments as described herein.Similarly, in another embodiment, a process for multiple column/row datasorting is implemented on and/or run and/or stored on a computing systemand/or server system that is comprised of multiple different computers,wireless devices, cellular telephones, digital telephones, two-waypagers, personal digital assistants, server computers, or any desiredcombination of these devices, that are interconnected to perform theprocesses as described herein.

Process

In accordance with one embodiment, a process for multiple column/rowdata sorting includes a sort icon well provided on a display screen of acomputing system as part of a user interface with data displayed in adata table. In one embodiment, the icon well includes individual sorticons each associated with a prioritized order for sorting data. In oneembodiment, the individual sort icons can be manipulated by a user andmoved to a desired column or row to prioritize the data sort.

FIG. 2 a flow chart depicting a process for multiple column/row datasorting 200 in accordance with one embodiment. Process for multiplecolumn/row data sorting 200 begins at ENTER OPERATION 201 and processflow proceeds to PROVIDE A TABLE OF DATA OPERATION 203.

In one embodiment, at PROVIDE A TABLE OF DATA OPERATION 203 a table ofdata, also called a data table herein, is provided on a display screenon a display device, such display devices 115 and 125 of FIG. 1, of acomputing system, such as computing system 100 or server system 120 ofFIG. 1. Displaying data in data tables is well known to those of skillin the art and is an integral component of many computing systemimplemented programs, processes, applications, modules, and features,including, but not limited to: computing system implemented spreadsheetsystems/programs; computing system implemented word processingsystems/programs; computing system implemented financial managementsystems; web-based/web-page building systems; computing systemimplemented business financial systems; computing system implementedaccounting programs; computing system implemented inventory systems;computing system implemented tax programs; point-of-sale programs;e-mail programs; personal time management programs; computing systemimplemented graphics and/or presentation systems; program developmentsystems; and numerous other computing system implemented programs and/orsystems, whether known and available at the time of filing or asdeveloped thereafter.

A typical data table includes data arranged in columns and rows witheither the columns or rows having headings indicating the subjectmatter/content displayed in the column or row. FIG. 3A shows oneembodiment of data arranged in a data table 301. As shown in FIG. 3A,data table includes columns 321, 323, 325, and 327 and rows, such asexemplary rows 341, 343, 345, 347, and 349.

In the particular example of FIG. 3A, the data shown in data table 301represents a listing of employees. In the particular example of FIG. 3A,column 321 includes a column heading “Last Name” and includes datarepresenting a last name of the employees listed in the various rows. Inthe particular example of FIG. 3A, column 323 includes a column heading“First Name” and includes data representing a first name of theemployees listed in the various rows. In the particular example of FIG.3A, column 325 includes a column heading “DOB” and includes datarepresenting a date of birth of the employees listed in the variousrows. In the particular example of FIG. 3A, column 327 includes a columnheading “DOH” and includes data representing a date of hire of theemployees listed in the various rows.

Those of skill in the art will readily recognize that the choice of datapresented in FIG. 3A, the method of presenting the data in FIG. 3A, anda general layout of data table 301, was chosen for illustrative purposesonly and that numerous other possibilities exist for methods, layout,and data presented in a table of data, such as data table 301. Inparticular, in other situations, it is desirable to arrange the datawith row headings, as opposed to column headings, and to generallyorient data table 301 vertically, as opposed to horizontally. The use ofeither row headings or column headings in a table of data, such as datatable 301, is well-known to those of skill in the art and is commonpractice.

In one embodiment, once a data table is provided at PROVIDE A TABLE OFDATA OPERATION 203, process flow proceeds to PROVIDE A USER INTERFACEFOR INTERACTING WITH THE TABLE OF DATA OPERATION 205.

In one embodiment, at PROVIDE A USER INTERFACE FOR INTERACTING WITH THETABLE OF DATA OPERATION 205, a user interface is provided forinteracting with the data table of PROVIDE A TABLE OF DATA OPERATION203.

FIG. 3A shows user interface screen 300, including data table 301discussed above, as it would be displayed on a display screen of adisplay device, such display devices 115 and 125 of FIG. 1, of acomputing system, such as computing system 100 or server system 120 ofFIG. 1. Returning to FIG. 3A, user interface screen 300 also includes amovable interface symbol, in this particular example, a cursor 305, forinteracting with user interface screen 300 and data table 301.

In one embodiment, a movable interface symbol, such as cursor 305, ismanipulated and/or controlled by any standard user interface device ormechanism including, but not limited to: a keyboard, such as keyboard107 of FIG. 1; a mouse, such as mouse 111 of FIG. 1; a touchpad; astylus; voice commands and/or voice recognition software; or any othermeans and/or mechanism for converting user actions into computing systemimplemented instructions for manipulating and/or controlling a movableinterface symbol, such as cursor 305.

In one embodiment, the movable interface symbol, such as cursor 305 ofFIG. 3A, and the user interface, such as user interface screen 300,provided at PROVIDE A USER INTERFACE FOR INTERACTING WITH THE TABLE OFDATA OPERATION 205 of FIG. 2 are used to manipulate, change, and orotherwise interact with the data presented in the table of data, such asdata table 301 of FIG. 3A, of PROVIDE A TABLE OF DATA OPERATION 203(FIG. 2).

In one embodiment, once a user interface is provided for interactingwith the data table of PROVIDE A TABLE OF DATA OPERATION 203 at PROVIDEA USER INTERFACE FOR INTERACTING WITH THE TABLE OF DATA OPERATION 205process flow proceeds to PROVIDE A SORT ICON WELL THROUGH THE USERINTERFACE OPERATION 207.

In one embodiment, at PROVIDE A SORT ICON WELL THROUGH THE USERINTERFACE OPERATION 207, a sort icon well is provided through, and/or aspart of, the user interface of PROVIDE A USER INTERFACE FOR INTERACTINGWITH THE TABLE OF DATA OPERATION 205. In one embodiment, the icon wellincludes individual sort icons each associated with an order for sortingdata. As discussed in more detail below, the individual sort icons canbe manipulated by a user and moved to a desired column or row toprioritize a data sort.

Returning to FIG. 3A, user interface screen 300 includes sort icon well303 which, in this particular example, includes primary sort icon 351,secondary sort icon 352, and tertiary sort icon 353. Those of skill theart will readily recognize that the particular format and layout of sorticon well 303 shown in FIG. 3A is illustrative only and the variousother formats and layouts for sort icon well would be equallyapplicable. In addition, while three sort icons primary sort icon 351,secondary sort icon 352, and tertiary sort icon 353 are shown in FIG. 3Ain sort icon well 303, those of skill the art will readily recognizethat any number of sort icons desired, including more or less thanthree, could be used in other embodiments and examples. Consequently,the specific example shown in FIG. 3A do not limit the scope of theinvention as set forth in the claims below.

As shown in FIG. 3A, primary sort icon 351 includes a symbolic number“1” indicating that primary sort icon 351 is a primary, or firstpriority, sort icon. Likewise, secondary sort icon 352 includes asymbolic number “2” indicating that secondary sort icon 352 is asecondary, or second priority, sort icon. Likewise, tertiary sort icon353 includes a symbolic number “3” indicating that tertiary sort icon353 is a tertiary, or third priority, sort icon. Those of skill the artwill readily recognize that other symbols including, but not limited to,colors, numbers, letters, or any other desired symbols could be used toindicate the priority of a given sort icon. Consequently the specificexample shown in FIG. 3A does not limit the scope and the invention asset forth in the claims below.

In one embodiment, once a sort icon well is provided at PROVIDE A SORTICON WELL THROUGH THE USER INTERFACE OPERATION 207, process flowproceeds to SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BE THEPRIMARY SORT COLUMN/ROW OPERATION 209.

In one embodiment at SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TOBE THE PRIMARY SORT COLUMN/ROW OPERATION 209 a user selects a firstcolumn, or column content, to be used as the primary sort column.

As discussed above, when viewing and/or interacting with data arrangedin data tables it is often highly desirable to sort the data based onthe subject matter/content in the columns and/or rows. Using process formultiple column/row data sorting 200, a user is provided with thecapability to prioritize a sort using the sort icons in the sort iconwell. As part of this process, a user determines which column or row theuser wishes to give first, or primary, sort priority.

As discussed in more detail below, in the particular example of FIG. 3A,it will be stipulated that the user selects column 321, the “Last Name”column, as the first column or row of data table 301 that the userwishes to designate as the primary sort column. It is worth noting, thatin FIG. 3A the five employees having a last name Smith in rows 341, 343,345, 347, and 349 are dispersed throughout data table 301. This isbecause, in FIG. 3A, data table 301 is shown as having been sortedaccording to date of hire column 327.

Returning to FIG. 2, once a user has chosen a first column or row of thedata table of PROVIDE A TABLE OF DATA OPERATION 203 that the user wishesto designate as the primary sort column or row at SELECT A FIRSTCOLUMN/ROW IN THE TABLE OF DATA TO BE THE PRIMARY SORT COLUMN/ROWOPERATION 209, process flow proceeds to DESIGNATE THE FIRST COLUMN/ROWAS THE PRIMARY SORT COLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THESORT ICON WELL TO THE FIRST COLUMN/ROW OPERATION 211.

In one embodiment at, DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORTCOLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THE SORT ICON WELL TO THEFIRST COLUMN/ROW OPERATION 211, a user manipulates the primary sort iconof the icon well provided at PROVIDE A SORT ICON WELL THROUGH THE USERINTERFACE OPERATION 207 and moves the primary sort icon to a location inor near the first row or column chosen as the primary sort column or rowat SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BE THE PRIMARY SORTCOLUMN/ROW OPERATION 209.

FIG. 3B, FIG. 3C, and FIG. 3D show one example of a user manipulatingthe primary sort icon of the icon well provided at PROVIDE A SORT ICONWELL THROUGH THE USER INTERFACE OPERATION 207 (FIG. 2) and moving theprimary sort icon to the first row or column chosen as the primary sortcolumn or row at SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BETHE PRIMARY SORT COLUMN/ROW OPERATION 209.

In particular, FIG. 3B shows user interface screen 300, data table 301,and icon well 303 with cursor 305 placed over primary icon 351. In thisparticular example, cursor 305 is then activated by any means well-knownof those of skill in the art and/or as discussed herein, such thatprimary icon 351 becomes attached to cursor 305. In other embodimentscursor 305 is activated by any means well-known of those of skill in theart and/or as discussed herein, such that cursor 305 becomes the primaryicon 351.

FIG. 3C shows cursor 305 with the attached primary icon 351 after beingmoved to the selected first column, or primary sort column, 321 with acolumn heading “Last Name”. Those of skill in the art will recognizethat in some embodiments cursor 305, with the attached primary icon 351,can be place in, on, or near, the selected first column, or primary sortcolumn 321 to the same effect.

As discussed above, in one embodiment, a movable interface symbol, suchas cursor 305, is manipulated and/or controlled by any standard userinterface device or mechanism including, but not limited to: a keyboard,such as keyboard 107 of FIG. 1; a mouse, such as mouse 111 of FIG. 1; atouchpad; a stylus; voice commands and/or voice recognition software; orany other means in or mechanism for converting user actions intocomputing system implemented instructions for manipulating and/orcontrolling a movable interface symbol, such as cursor 305 of FIG. 3C.

In addition those of skill in the art will recognize that while a cursoris chosen for illustrative purposes as the movable interface symbol inFIGS. 3A to 3L, various other types of movable interface symbols couldbe used in other embodiments Consequently, the choice of a cursor doesnot limit the invention as set forth in the claims below.

In one embodiment, and in this particular example, after cursor 305 withthe attached primary icon 351 is moved to the selected first column, orprimary sort column, 321 with a column heading “Last Name”, cursor 305is activated by any one of numerous means known in the art, therebyattaching primary sort icon 351 to column 321 and thereby designatingcolumn 321 as the primary sort column.

Returning to FIG. 2, in one embodiment, once a user manipulates theprimary sort icon of the icon well provided at PROVIDE A SORT ICON WELLTHROUGH THE USER INTERFACE OPERATION 207 and moves the primary sort iconto the first row or column chosen as the primary sort column or row ofSELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BE THE PRIMARY SORTCOLUMN/ROW OPERATION 209 at DESIGNATE THE FIRST COLUMN/ROW AS THEPRIMARY SORT COLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THE SORT ICONWELL TO THE FIRST COLUMN/ROW OPERATION 211, process flow proceeds toPERFORM A PRIMARY SORT OF THE DATA IN THE TABLE OF DATA BASED ON THESELECTION OF THE PRIMARY SORT ROW/COLUMN OPERATION 213.

In one embodiment at PERFORM A PRIMARY SORT OF THE DATA IN THE TABLE OFDATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMN OPERATION213, the data in the data table of PROVIDE A TABLE OF DATA OPERATION 203is sorted according to the placement of the primary sort icon ofDESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORT COLUMN/ROW BY MOVINGA PRIMARY SORT ICON FROM THE SORT ICON WELL TO THE FIRST COLUMN/ROWOPERATION 211.

FIG. 3D shows data table 301 after primary sort icon 351 has been movedfrom icon well 303 to column 321 thereby designating column 321 and“Last Name” as the primary sort column. In this particular example, thedesignation of column 321 as the primary sort column results in anautomatic alphabetical listing, by last name, of the employees listed indata table 301.

As shown in FIG. 3D, since column 321 is designated as a primary sortcolumn, all the employees are now listed, in this particular example, indescending last name alphabetical order with the employees having thelast name Smith, i.e., rows 345, 349, 343, 341, and 347, groupedtogether in portion 360 of data table 301. Those of skill in the artwill readily recognize that, in other embodiments, the order could be inascending alphabetical order and that descending alphabetical order waschosen for illustrative purposes only and in no way limits the inventionas claimed below.

It is worth noting that, as shown in FIG. 3D, while in this particularexample, all the employees having a last name Smith are grouped togetherby virtue of the primary sort, data from column 323 regarding theemployees first names has not been included as part of the primary sort.Consequently, the three John Smith's, i.e., rows 345, 343, and 347 arerelatively dispersed. In many instances however it would be equallydesirable to, in addition to sorting by the last name, to sort the datatable by the column 323, or the first name, as well.

In one embodiment, once the data in the data table of PROVIDE A TABLE OFDATA OPERATION 203 is sorted according to the placement of the primarysort icon of DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORTCOLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THE SORT ICON WELL TO THEFIRST COLUMN/ROW OPERATION 211 at PERFORM A PRIMARY SORT OF THE DATA INTHE TABLE OF DATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMNOPERATION 213, process flow proceeds to SELECT A SECOND COLUMN/ROW INTHE TABLE OF DATA TO BE THE SECONDARY SORT COLUMN/ROW OPERATION 215.

In one embodiment at SELECT A SECOND COLUMN/ROW IN THE TABLE OF DATA TOBE THE SECONDARY SORT COLUMN/ROW OPERATION 215 a user selects a secondcolumn, or column content, to be used as the secondary sort column.

Once a user has chosen a second column or row of the data table ofPROVIDE A TABLE OF DATA OPERATION 203 that the user wishes to designateas the secondary sort column or row at SELECT A SECOND COLUMN/ROW IN THETABLE OF DATA TO BE THE SECONDARY SORT COLUMN/ROW OPERATION 215, processflow proceeds to DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARY SORTCOLUMN/ROW BY MOVING A SECONDARY SORT ICON FROM THE SORT ICON WELL TOTHE SECOND COLUMN/ROW OPERATION 217.

In one embodiment at, DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARYSORT COLUMN/ROW BY MOVING A SECONDARY SORT ICON FROM THE SORT ICON WELLTO THE SECOND COLUMN/ROW, a user manipulates the secondary sort icon ofthe icon well provided at PROVIDE A SORT ICON WELL THROUGH THE USERINTERFACE OPERATION 207 and moves the secondary sort icon to the secondrow or column chosen as the secondary sort column or row at SELECT ASECOND COLUMN/ROW IN THE TABLE OF DATA TO BE THE SECONDARY SORTCOLUMN/ROW OPERATION 215 by any of the methods discussed herein.

FIG. 3E, FIG. 3F, and FIG. 3G show one example of a user manipulatingthe secondary sort icon 352 of the icon well 303 provided at PROVIDE ASORT ICON WELL THROUGH THE USER INTERFACE OPERATION 207 (FIG. 2) andmoving the secondary sort icon to the second row or column chosen as thesecondary sort column or row at SELECT A SECOND COLUMN/ROW IN THE TABLEOF DATA TO BE THE SECONDARY SORT COLUMN/ROW OPERATION 215.

In particular, FIG. 3E shows user interface screen 300, data table 301,and icon well 303 with cursor 305 placed over secondary icon 352. Inthis particular example, cursor 305 is then activated by any meanswell-known of those of skill in the art and/or as discussed herein, suchthat secondary icon 352 becomes attached to cursor 305. FIG. 3F showscursor 305 with the attached secondary icon 352 after being moved to theselected second column, or secondary sort column, 323 with a columnheading “First Name”.

In one embodiment, and in this particular example, after cursor 305 withthe attached secondary icon 352 is moved to the selected second column,or secondary sort column, 323 with a column heading “First Name”, cursor305 is activated by any one of numerous means known in the art,attaching secondary sort icon 352 to column 323 and thereby designatingcolumn 323 as the secondary sort column.

Returning to FIG. 2, in one embodiment, once a user manipulates thesecondary sort icon of the icon well provided at PROVIDE A SORT ICONWELL THROUGH THE USER INTERFACE OPERATION 207 and moves the secondarysort icon to the second row or column chosen as the secondary sortcolumn or row of SELECT A SECOND COLUMN/ROW IN THE TABLE OF DATA TO BETHE SECONDARY SORT COLUMN/ROW OPERATION 215 at DESIGNATE THE SECONDCOLUMN/ROW AS THE SECONDARY SORT COLUMN/ROW BY MOVING A SECONDARY SORTICON FROM THE SORT ICON WELL TO THE SECOND COLUMN/ROW OPERATION 217,process flow proceeds to PERFORM A SECONDARY SORT OF THE DATA IN THETABLE OF DATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMN ANDTHE SECONDARY SORT ROW/COLUMN OPERATION 219.

In one embodiment at PERFORM A SECONDARY SORT OF THE DATA IN THE TABLEOF DATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMN AND THESECONDARY SORT ROW/COLUMN OPERATION 219, the data in the data table ofPROVIDE A TABLE OF DATA OPERATION 203 is sorted according to theplacement of the primary sort icon of DESIGNATE THE FIRST COLUMN/ROW ASTHE PRIMARY SORT COLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THE SORTICON WELL TO THE FIRST COLUMN/ROW OPERATION 211 and the placement of thesecondary sort icon of DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARYSORT COLUMN/ROW BY MOVING A SECONDARY SORT ICON FROM THE SORT ICON WELLTO THE SECOND COLUMN/ROW OPERATION 217.

FIG. 3G shows data table 301 after primary sort icon 351 has been movedfrom icon well 303 to column 321 and secondary sort icon 352 has beenmoved from icon well 303 to column 323 thereby designating column 321and “Last Name” as the primary sort and column 323 and “First Name” asthe secondary sort.

In this particular example, the designation of column 323 as thesecondary sort column results in an automatic alphabetical listing, bylast name and first name, of the employees listed in data table 301.

In one embodiment, the designation of column 323 as the secondary sortcolumn is in addition to, and as a refinement of the designation ofcolumn 321 as the primary sort column. Consequently, the designation ofcolumn 323 and “First Name-” as a secondary sort column does not changethe grouping of all employees having the last name Smith in section 360,however, the order of rows has changed from the non-first namealphabetical listing order of 345, 349, 343, 341, and 347 to the firstname alphabetical listing order of 345, 343, 347, 349, and 341 with theemployees named John Smith being grouped together. Consequently, usingprocess for multiple column/row data sorting 200 the user is provided acapability to progressively refine a sort by multiple columns and/ordata content.

It is worth noting that, as shown in FIG. 3G, while in this particularexample, all the employees having the name John Smith are now groupedtogether by virtue of the primary and secondary sorts, data from column325 regarding the employees date of birth has not been included as partof the sorting process. Consequently, the three John Smith's, are notlisted in date of birth order.

In one embodiment the process discussed above is repeated for as manysort icons as the user desires. In this case, operations substantiallyidentical to operations 209, 211, 213, 215, 217, and 219 are repeatedfor each additional sort icon.

FIGS. 3H, 3I and 3J show one example of a user manipulating the tertiarysort icon 353 of the icon well 303 provided at PROVIDE A SORT ICON WELLTHROUGH THE USER INTERFACE OPERATION 207 (FIG. 2) and moving thetertiary sort icon to the third row or column chosen as the third sortcolumn or row.

In particular, FIG. 3H shows user interface screen 300, data table 301,and icon well 303 with cursor 305 placed over tertiary icon 353. In thisparticular example, cursor 305 is then activated by any means well-knownof those of skill in the art and/or as discussed herein, such thattertiary icon 352 becomes attached to cursor 305. FIG. 3I shows cursor305 with the attached tertiary icon 352 after being moved to theselected third column, or tertiary sort column, 325 with a columnheading “DOB” (date of birth).

In one embodiment, and in this particular example, after cursor 305 withthe attached tertiary icon 353 is moved to the selected third column, ortertiary sort column, 325 with a column heading “DOB”, cursor 305 isactivated by any one of numerous means known in the art, therebyattaching tertiary sort icon 353 to column 325 and thereby designatingcolumn 325 as the tertiary sort column.

FIG. 3J shows data table 301 after primary sort icon 351 has been movedfrom icon well 303 to column 321, secondary sort icon 352 has been movedfrom icon well 303 to column 323, and tertiary sort icon 353 has beenmoved from icon well 303 to third column 325, thereby designating column321 and “Last Name” as the primary sort, column 323 and “First Name” asthe secondary sort, and third column 325 and “DOB” as the tertiary sort.

In this particular example, the designation of third column 325 as thetertiary sort column results in an automatic ascending date of birthlist, by last name and first name, of the employees listed in data table301. In one embodiment, the designation of third column 325 as thetertiary sort column is in addition to, and as a refinement of, thedesignation of column 321 as the primary sort column and the designationof column 323 are the secondary sort. Consequently, the designation ofthird column 325 and “DOB” as a tertiary sort column does not change thegrouping of all employees having the name John Smith together, however,the order of rows has changed from 345, 343, and 347 to 345, 347 and343, reflecting the ascending birth dates. Consequently, using processfor multiple column/row data sorting 200 the user is provided acapability to progressively refine a sort by multiple columns and/ordata content.

In addition, in one embodiment, sort icons can be exchanged betweencolumns and rows to view the data in the data table in variousarrangements. In some embodiments, sort icons can be exchanged betweencolumns and rows by moving one or more of the sort icons involved backinto the sort icon well and then repositioning the icons as desired. Inother embodiments, more direct exchanges of sort icons are facilitatedthrough direct switching of icons and then activating the icons and/orrefreshing/updating the data display.

FIG. 3K shows user interface screen 300 and data table 301 after a userhas exchanged secondary sort icon 352 for tertiary sort icon 353 incolumn 323 and tertiary sort icon 353 for secondary sort icon 352 incolumn 325, i.e., column 523 and 325 have exchanged sort icons. As aresult of this exchange the employees of the last name Smith are nowlisted in FIG. 3K by ascending birth date as the secondary sort, withoutregard for the grouping of all the employees named John Smith together.

In one embodiment, once the data in the data table of PROVIDE A TABLE OFDATA OPERATION 203 is sorted according to the placement of the primarysort icon of DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORTCOLUMN/ROW BY MOVING A PRIMARY SORT ICON FROM THE SORT ICON WELL TO THEFIRST COLUMN/ROW OPERATION 211 and the secondary sort icon of DESIGNATETHE SECOND COLUMN/ROW AS THE SECONDARY SORT COLUMN/ROW BY MOVING ASECONDARY SORT ICON FROM THE SORT ICON WELL TO THE SECOND COLUMN/ROWOPERATION 217, and any other desired/used sort icons, at PERFORM ASECONDARY SORT OF THE DATA IN THE TABLE OF DATA BASED ON THE SELECTIONOF THE PRIMARY SORT ROW/COLUMN AND THE SECONDARY SORT ROW/COLUMNOPERATION 219, process flow proceeds to Exit operation 330 and processfor multiple column/row data sorting 200 is exited.

In accordance with one embodiment, a process for multiple column/rowdata sorting includes a movable interface symbol, such as a cursor, aspart of a user interface for interacting with data arranged a datatable. In one embodiment, the performance of designated key or commandsequences through a user interface device transforms the movableinterface symbol into a movable sort symbol.

FIG. 4 a flow chart depicting a process for multiple column/row datasorting 400 in accordance with one embodiment. Process for multiplecolumn/row data sorting 400 begins at ENTER OPERATION 401 and processflow proceeds to PROVIDE A TABLE OF DATA OPERATION 403.

In one embodiment, at PROVIDE A TABLE OF DATA OPERATION 403 a table ofdata, also called a data table herein, is provided on a display screenon a display device, such display devices 115 and 125 of FIG. 1, of acomputing system, such as computing system 100 or server system 120 ofFIG. 1.

As discussed above, a typical data table includes data arranged incolumns and rows with either the columns or rows having headingsindicating the subject matter/content displayed in the column or row.FIG. 5A shows one embodiment of data arranged in a data table 501. Asshown in FIG. 5A, data table 501 includes columns 521, 523, 525, and 527and rows, such as exemplary rows 541, 543, 545, 547, and 549.

In the particular example of FIG. 5A, the data shown in data table 501represents a listing of employees. In the particular example of FIG. 5A,column 521 includes a column heading “Last Name” and includes datarepresenting a last name of the employees listed in the various rows. Inthe particular example of FIG. 5A, column 523 includes a column heading“First Name” and includes data representing a first name of theemployees listed in the various rows. In the particular example of FIG.5A, column 525 includes a column heading “DOB” and includes datarepresenting a date of birth of the employees listed in the variousrows. In the particular example of FIG. 5A, column 527 includes a columnheading “DOH” and includes data representing a date of hire of theemployees listed in the various rows.

Those of skill in the art will readily recognize that the choice of datapresented in FIG. 5A, the method of presenting the data in FIG. 5A, anda general layout of data table 501, was chosen for illustrative purposesonly and that numerous other possibilities exist for methods, layout,and data presented in a table of data, such as data table 501. Inparticular, in other situations, it is desirable to arrange the datawith row headings, as opposed to column headings, and to generallyorient data table 501 vertically, as opposed to horizontally. The use ofeither row headings or column headings in a table of data, such as datatable 501, is well-known to those of skill in the art and is commonpractice.

In one embodiment, once a data table is provided at PROVIDE A TABLE OFDATA OPERATION 403, process flow proceeds to PROVIDE A USER INTERFACEINCLUDING A MOVABLE INTERFACE SYMBOL FOR INTERACTING WITH THE TABLE OFDATA OPERATION 405.

In one embodiment, at PROVIDE A USER INTERFACE INCLUDING A MOVABLEINTERFACE SYMBOL FOR INTERACTING WITH THE TABLE OF DATA OPERATION 405, auser interface is provided for interacting with the data table ofPROVIDE A TABLE OF DATA OPERATION 403.

FIG. 5A shows user interface screen 500, including data table 501discussed above, as it would be displayed on a display screen of adisplay device, such display devices 115 and 125 of FIG. 1, of acomputing system, such as computing system 100 or server system 120 ofFIG. 1. Returning to FIG. 5A, user interface screen 500 also includes amovable interface symbol, in this particular example, a cursor 505, forinteracting with user interface screen 500 and data table 501.

In one embodiment, a movable interface symbol, such as cursor 505, ismanipulated and/or controlled by any standard user interface device ormechanism including, but not limited to, those discussed herein.

In one embodiment, the movable interface symbol, such as cursor 505 ofFIG. 5A, and the user interface, such as user interface screen 500,provided at PROVIDE A USER INTERFACE INCLUDING A MOVABLE INTERFACESYMBOL FOR INTERACTING WITH THE TABLE OF DATA OPERATION 405 of FIG. 4are used to manipulate, change, and or otherwise interact with the datapresented in the table of data, such as data table 501 of FIG. 5A, ofPROVIDE A TABLE OF DATA OPERATION 403 (FIG. 4).

In one embodiment, once a user interface is provided for interactingwith the data table of PROVIDE A TABLE OF DATA OPERATION 403 at PROVIDEA USER INTERFACE INCLUDING A MOVABLE INTERFACE SYMBOL FOR INTERACTINGWITH THE TABLE OF DATA OPERATION 405 process flow proceeds to PERFORM APRIMARY SORT KEY SEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACESYMBOL INTO A MOVABLE PRIMARY SORT SYMBOL OPERATION 407.

In one embodiment, at PERFORM A PRIMARY SORT KEY SEQUENCE THEREBYTRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO A MOVABLE PRIMARY SORTSYMBOL OPERATION 407, a designated key sequence is performed by the userthat transforms the movable interface symbol, such as a cursor, into amovable primary sort symbol.

In one embodiment, the designated primary sort key sequence includes thepressing and/or holding down of multiple keys, such as, for example, afunction key in combination with the number one or, in another example,the control key combined with the alternate key and the number one.Those of skill in the art will readily recognize that numerous keysequence designations can be used to transform the movable interfacesymbol into a movable primary sort symbol. In one embodiment theperformance of the designated primary sort key sequence while themovable interface symbol is within a given column automaticallydesignates that column as the primary sort column. In one embodiment,the graphic display of the movable interface symbol is transformed intoa graphical display of a movable primary sort symbol and then themovable primary sort symbol is positioned in a desired column, or columnheader, and action is taken to activate the movable primary sort symbol.

FIG. 5B shows user interface display 500 and data table 501 includingmovable primary sort symbol 507, as transformed from movable userinterface symbol 505 of FIG. 5A by performing the primary sort keysequence of PERFORM A PRIMARY SORT KEY SEQUENCE THEREBY TRANSFORMING THEMOVABLE INTERFACE SYMBOL INTO A MOVABLE PRIMARY SORT SYMBOL OPERATION407.

In one embodiment, once a designated key sequence is performed by theuser that transforms the movable interface symbol, such as a cursor,into a movable primary sort symbol at PERFORM A PRIMARY SORT KEYSEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO AMOVABLE PRIMARY SORT SYMBOL OPERATION 407, process flow proceeds toSELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BE THE PRIMARY SORTCOLUMN/ROW OPERATION 409.

In one embodiment at SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TOBE THE PRIMARY SORT COLUMN/ROW OPERATION 409 a user selects a firstcolumn, or column content, to be used as the primary sort column.

As discussed above, when viewing and/or interacting with data arrangedin data tables it is often highly desirable to sort the data based onthe subject matter/content in the columns and/or rows. Using process formultiple column/row data sorting 400, a user is provided with thecapability to prioritize a sort using the movable user interfacesymbol/movable primary sort symbol. As part of this process, a userdetermines which column or row the user wishes to give first, orprimary, sort priority.

As discussed in more detail below, in the particular example of FIG. 5A,it will be stipulated that the user selects column 521, the “Last Name”column, as the first column or row of data table 501 that the userwishes to designate as the primary sort column. It is worth noting thatin FIG. 5A the five employees having a last name Smith in rows 541, 543,545, 547, and 549 are dispersed throughout data table 501. This isbecause, in FIG. 5A, data table 501 is shown as having been sortedaccording to date of hire column 527.

Returning to FIG. 4, once a user has chosen a first column or row of thedata table of PROVIDE A TABLE OF DATA OPERATION 403 that the user wishesto designate as the primary sort column or row at SELECT A FIRSTCOLUMN/ROW IN THE TABLE OF DATA TO BE THE PRIMARY SORT COLUMN/ROWOPERATION 409, process flow proceeds to DESIGNATE THE FIRST COLUMN/ROWAS THE PRIMARY SORT COLUMN/ROW BY SELECTING THE FIRST COLUMN/ROW WITHTHE MOVABLE PRIMARY SORT SYMBOL OPERATION 411.

In one embodiment at, DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORTCOLUMN/ROW BY SELECTING THE FIRST COLUMN/ROW WITH THE MOVABLE PRIMARYSORT SYMBOL OPERATION 411, a user manipulates the movable user interfacesymbol/movable primary sort symbol provided at PERFORM A PRIMARY SORTKEY SEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO AMOVABLE PRIMARY SORT SYMBOL OPERATION 407 and moves the movable primarysort symbol to the first row or column chosen as the primary sort columnor row at SELECT A FIRST COLUMN/ROW IN THE TABLE OF DATA TO BE THEPRIMARY SORT COLUMN/ROW OPERATION 409.

FIG. 5B, FIG. 5C, and FIG. 5D show one example of a user manipulatingthe movable user interface symbol/movable primary sort symbol providedat PERFORM A PRIMARY SORT KEY SEQUENCE THEREBY TRANSFORMING THE MOVABLEINTERFACE SYMBOL INTO A MOVABLE PRIMARY SORT SYMBOL OPERATION 407 (FIG.4) and moving the movable primary sort symbol to the first row or columnchosen as the primary sort column or row at SELECT A FIRST COLUMN/ROW INTHE TABLE OF DATA TO BE THE PRIMARY SORT COLUMN/ROW OPERATION 409.

In particular, FIG. 5B shows user interface screen 500, data table 501,and movable primary sort symbol 507, as transformed from movable userinterface symbol 505 of FIG. 5A or by performing the primary sort keysequence of PERFORM A PRIMARY SORT KEY SEQUENCE THEREBY TRANSFORMING THEMOVABLE INTERFACE SYMBOL INTO A MOVABLE PRIMARY SORT SYMBOL OPERATION407. FIG. 5C shows movable primary sort symbol after being moved to theselected first column, or primary sort column, 521 with a column heading“Last Name”.

As discussed above, in one embodiment, a movable interface symbol, suchas cursor 505 or movable primary sort symbol 507, is manipulated and/orcontrolled by any standard user interface device or mechanism including,but not limited to, those discussed herein.

In addition those of skill in the art will recognize that while a cursorand/or a graphical number block were chosen for illustrative purposes asthe movable interface symbol and movable primary sort symbol in FIGS. 5Ato 5G, various other types of movable interface symbols could be used inother embodiments. Consequently, the choice of a cursor and/or agraphical number block does not limit the invention as set forth in theclaims below.

In one embodiment, and in this particular example, after movable primarysort symbol 507 is moved to the selected primary sort column 521 with acolumn heading “Last Name”, movable primary sort symbol 507 is activatedby any one of numerous means known in the art, thereby attaching movableprimary sort symbol 507 to column 521 and thereby designating column 521as the primary sort column.

Returning to FIG. 4, in one embodiment, once a user manipulates themovable user interface symbol/movable primary sort symbol provided atPERFORM A PRIMARY SORT KEY SEQUENCE THEREBY TRANSFORMING THE MOVABLEINTERFACE SYMBOL INTO A MOVABLE PRIMARY SORT SYMBOL OPERATION 407 andmoves the movable primary sort symbol to the first row or column chosenas the primary sort column or row of SELECT A FIRST COLUMN/ROW IN THETABLE OF DATA TO BE THE PRIMARY SORT COLUMN/ROW OPERATION 409 atDESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORT COLUMN/ROW BYSELECTING THE FIRST COLUMN/ROW WITH THE MOVABLE PRIMARY SORT SYMBOLOPERATION 411, process flow proceeds to PERFORM A PRIMARY SORT OF THEDATA IN THE TABLE OF DATA BASED ON THE SELECTION OF THE PRIMARY SORTROW/COLUMN OPERATION 413.

In one embodiment at PERFORM A PRIMARY SORT OF THE DATA IN THE TABLE OFDATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMN OPERATION413, the data in the data table of PROVIDE A TABLE OF DATA OPERATION 403is sorted according to the placement of the movable primary sort symbolof DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARY SORT COLUMN/ROW BYSELECTING THE FIRST COLUMN/ROW WITH THE MOVABLE PRIMARY SORT SYMBOLOPERATION 411.

FIG. 5D shows data table 501 after movable primary sort symbol 507 hasbeen activated and primary sort status has been accorded to column 521thereby designating column 521 and “Last Name” as the primary sortcolumn. In this particular example, the designation of column 521 as theprimary sort column results in an automatic alphabetical listing, bylast name, of the employees listed in data table 501.

As shown in FIG. 5D, since column 521 is designated as a primary sortcolumn, all the employees are now listed, in this particular example, indescending last name alphabetical order with the employees having thelast name Smith, i.e., rows 545, 549, 543, 541, and 547, groupedtogether in data table 501. Those of skill in the art will readilyrecognize that, in other embodiments, the order could be in ascendingalphabetical order and that descending alphabetical order was chosen forillustrative purposes only and in no way limits the invention as claimedbelow.

Also shown in FIG. 5D is cursor 505, as restored after movable primarysort symbol 507 has been activated and primary sort status has beenaccorded to column 521.

It is worth noting that, as shown in FIG. 5D, while in this particularexample, all the employees having a last name Smith are grouped togetherby virtue of the primary sort, data from column 523 regarding theemployees first names has not been included as part of the primary sort.Consequently, the three John Smith's, i.e., rows 545, 543, and 547 arerelatively dispersed. In many instances however it would be equallydesirable, in addition to sorting by the last name, to sort the datatable by column 523, or the first name, as well.

In one embodiment, once the data in the data table of PROVIDE A TABLE OFDATA OPERATION 403 is sorted according to the placement of the movableprimary sort symbol of DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARYSORT COLUMN/ROW BY SELECTING THE FIRST COLUMN/ROW WITH THE MOVABLEPRIMARY SORT SYMBOL OPERATION 411 at PERFORM A PRIMARY SORT OF THE DATAIN THE TABLE OF DATA BASED ON THE SELECTION OF THE PRIMARY SORTROW/COLUMN OPERATION 413, process flow proceeds to PERFORM A SECONDARYSORT KEY SEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTOA MOVABLE SECONDARY SORT SYMBOL OPERATION 415.

In one embodiment, at PERFORM A SECONDARY SORT KEY SEQUENCE THEREBYTRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO A MOVABLE SECONDARY SORTSYMBOL OPERATION 415, a designated key sequence is performed by the userthat transforms the movable interface symbol, such as a cursor, into amovable secondary sort symbol.

In one embodiment, the designated secondary sort key sequence includesthe pressing and/or holding down of multiple keys, such as, for example,a function key in combination with the number two or, in anotherexample, the control key combined with the alternate key and the numbertwo. Those of skill in the art will readily recognize that numerous keysequence designations can be used to transform the movable interfacesymbol into a movable secondary sort symbol. In one embodiment theperformance of the designated secondary sort key sequence while themovable interface symbol is within a given column automaticallydesignates that column as the secondary sort column. In one embodiment,the graphic display of the movable interface symbol is transformed intoa graphical display of a movable secondary sort symbol and then themovable secondary sort symbol is positioned in a desired column orcolumn header. Then action is taken to activate the movable secondarysort symbol.

FIG. 5E shows user interface display 500 and data table 501 includingmovable secondary sort symbol 509, as transformed from movable userinterface symbol 505 of FIG. 5A or FIG. 5D by performing the secondarysort key sequence of PERFORM A SECONDARY SORT KEY SEQUENCE THEREBYTRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO A MOVABLE SECONDARY SORTSYMBOL OPERATION 415.

In one embodiment, once a designated secondary key sequence is performedby the user that transforms the movable interface symbol, such as acursor, into a movable secondary sort symbol at PERFORM A SECONDARY SORTKEY SEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO AMOVABLE SECONDARY SORT SYMBOL OPERATION 415, process flow proceeds toSELECT A SECOND COLUMN/ROW IN THE TABLE OF DATA TO BE THE SECONDARY SORTCOLUMN/ROW OPERATION 417.

In one embodiment at SELECT A SECOND COLUMN/ROW IN THE TABLE OF DATA TOBE THE SECONDARY SORT COLUMN/ROW OPERATION 417 a user selects a secondcolumn, or column content, to be used as the secondary sort column.

Once a user has chosen a second column or row of the data table ofPROVIDE A TABLE OF DATA OPERATION 403 that the user wishes to designateas the secondary sort column or row at SELECT A SECOND COLUMN/ROW IN THETABLE OF DATA TO BE THE SECONDARY SORT COLUMN/ROW OPERATION 417, processflow proceeds to DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARY SORTCOLUMN/ROW BY SELECTING THE SECOND COLUMN/ROW WITH THE MOVABLE SECONDARYSORT SYMBOL OPERATION 419.

In one embodiment at DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARYSORT COLUMN/ROW BY MOVING A SECONDARY SORT ICON FROM THE SORT ICON WELLTO THE SECOND COLUMN/ROW, a user manipulates the movable user interfacesymbol/movable secondary sort symbol provided at PERFORM A SECONDARYSORT KEY SEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTOA MOVABLE SECONDARY SORT SYMBOL OPERATION 415 and moves the movablesecondary sort symbol to the second row or column chosen as thesecondary sort column or row at SELECT A SECOND COLUMN/ROW IN THE TABLEOF DATA TO BE THE SECONDARY SORT COLUMN/ROW OPERATION 417 by any of themethods discussed herein.

FIG. 5E, FIG. 5F, and FIG. 5G show one example of a user manipulatingthe movable user interface symbol/movable secondary sort symbol providedat PERFORM A SECONDARY SORT KEY SEQUENCE THEREBY TRANSFORMING THEMOVABLE INTERFACE SYMBOL INTO A MOVABLE SECONDARY SORT SYMBOL OPERATION415 (FIG. 4) and moving the movable secondary sort symbol to the secondrow or column chosen as the secondary sort column or row at SELECT ASECOND COLUMN/ROW IN THE TABLE OF DATA TO BE THE SECONDARY SORTCOLUMN/ROW OPERATION 417.

In particular, FIG. 5E shows user interface screen 500, data table 501,and movable secondary sort symbol 509. FIG. 5C shows movable secondarysort symbol 509 after being moved to the selected second column, orsecondary sort column, 523 with a column heading “First Name”.

In one embodiment, and in this particular example, after movablesecondary sort symbol 509 is moved to the selected secondary sort column523 with a column heading “First Name”, and movable secondary sortsymbol 509 is then activated by any one of numerous means known in theart, thereby attaching movable secondary sort symbol 509 to column 523and thereby designating column 523 as the secondary sort column.

Returning to FIG. 4, in one embodiment, once a user manipulates themovable secondary sort symbol provided at PERFORM A PRIMARY SORT KEYSEQUENCE THEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO AMOVABLE PRIMARY SORT SYMBOL OPERATION 407 and moves the movablesecondary sort symbol to the second row or column chosen as thesecondary sort column or row of PERFORM A SECONDARY SORT KEY SEQUENCETHEREBY TRANSFORMING THE MOVABLE INTERFACE SYMBOL INTO A MOVABLESECONDARY SORT SYMBOL OPERATION 415 at DESIGNATE THE SECOND COLUMN/ROWAS THE SECONDARY SORT COLUMN/ROW BY SELECTING THE SECOND COLUMN/ROW WITHTHE MOVABLE SECONDARY SORT SYMBOL OPERATION 419, process flow proceedsto PERFORM A SECONDARY SORT OF THE DATA IN THE TABLE OF DATA BASED ONTHE SELECTION OF THE PRIMARY SORT ROW/COLUMN AND THE SECONDARY SORTROW/COLUMN OPERATION 421.

In one embodiment at PERFORM A SECONDARY SORT OF THE DATA IN THE TABLEOF DATA BASED ON THE SELECTION OF THE PRIMARY SORT ROW/COLUMN AND THESECONDARY SORT ROW/COLUMN OPERATION 421, the data in the data table ofPROVIDE A TABLE OF DATA OPERATION 403 is sorted according to theplacement of the movable primary sort symbol of DESIGNATE THE FIRSTCOLUMN/ROW AS THE PRIMARY SORT COLUMN/ROW BY SELECTING THE FIRSTCOLUMN/ROW WITH THE MOVABLE PRIMARY SORT SYMBOL OPERATION 411 and theplacement of the movable secondary sort symbol of DESIGNATE THE SECONDCOLUMN/ROW AS THE SECONDARY SORT COLUMN/ROW BY SELECTING THE SECONDCOLUMN/ROW WITH THE MOVABLE SECONDARY SORT SYMBOL OPERATION 419.

FIG. 5G shows data table 501 after movable primary sort symbol 507 hasbeen moved to column 521 and movable secondary sort symbol 509 has beenmoved to column 523 thereby designating column 521 and “Last Name” asthe primary sort and column 523 and “First Name” as the secondary sort.

In this particular example, the designation of column 523 as thesecondary sort column results in an automatic alphabetical listing, bylast name and first name, of the employees listed in data table 501.

In one embodiment, the designation of column 523 as the secondary sortcolumn is in addition to, and as a refinement of, the designation ofcolumn 521 as the primary sort column. Consequently, the designation ofcolumn 523 and “First Name” as a secondary sort column does not changethe grouping of all employees having the last name Smith, however, theorder of rows has changed from the non-first name alphabetical listingorder of 545, 549, 543, 541, and 547 to the first name alphabeticallisting order of 545, 543, 547, 549, and 541 with the employees namedJohn Smith being grouped together. Consequently, using process formultiple column/row data sorting 400 the user is provided a capabilityto progressively refine a sort by multiple columns and/or data content.

Also shown in FIG. 5G is cursor 505, as restored after movable secondarysort symbol 509 has been activated and secondary sort status has beenaccorded to column 523.

In one embodiment the process discussed above is repeated for as manysorts as the user desires. In this case, operations substantiallyidentical to operations 515, 517, 519, and 521 are repeated for eachadditional sort.

In one embodiment, once the data in the data table of PROVIDE A TABLE OFDATA OPERATION 403 is sorted according to the placement of the movableprimary sort symbol of DESIGNATE THE FIRST COLUMN/ROW AS THE PRIMARYSORT COLUMN/ROW BY SELECTING THE FIRST COLUMN/ROW WITH THE MOVABLEPRIMARY SORT SYMBOL OPERATION 411 and the movable secondary sort symbolof DESIGNATE THE SECOND COLUMN/ROW AS THE SECONDARY SORT COLUMN/ROW BYSELECTING THE SECOND COLUMN/ROW WITH THE MOVABLE SECONDARY SORT SYMBOLOPERATION 419, and any other desired sorts, at PERFORM A SECONDARY SORTOF THE DATA IN THE TABLE OF DATA BASED ON THE SELECTION OF THE PRIMARYSORT ROW/COLUMN AND THE SECONDARY SORT ROW/COLUMN OPERATION 421, processflow proceeds to Exit operation 430 and process for multiple column/rowdata sorting 400 is exited.

Using the method and system for multiple column/row data sorting, andprocesses for multiple column/row data sorting 200 and 400, disclosedherein, a user is provided with the capability to sort data arranged indata tables by multiple columns or rows simultaneously and in aprogressively refined manner. In addition, using the method and systemfor multiple column/row data sorting, and processes for multiplecolumn/row data sorting, disclosed herein, the user is provided thecapability to prioritize the sorting of the data by multiplecolumns/rows using a simple and visually intuitive user interface.

The present invention has been described in particular detail withrespect to specific possible embodiments. Those of skill in the art willappreciate that the invention may be practiced in other embodiments. Forexample, the nomenclature used for components, capitalization ofcomponent designations and terms, the attributes, data structures, orany other programming or structural aspect is not significant,mandatory, or limiting, and the mechanisms that implement the inventionor its features can have various different names, formats, and/orprotocols. Further, the system and/or functionality of the invention maybe implemented via various combinations of software and hardware, asdescribed, or entirely in hardware elements. Also, particular divisionsof functionality between the various components described herein ismerely exemplary, and not mandatory or significant. Consequently,functions performed by a single component may, in other embodiments, beperformed by multiple components, and functions performed by multiplecomponents may, in other embodiments, be performed by a singlecomponent.

Some portions of the above description present the features of thepresent invention in terms of algorithms and symbolic representations ofoperations, or algorithm-like representations, of operations oninformation/data. These algorithmic and/or algorithm-like descriptionsand representations are the means used by those of skill in the art tomost effectively and efficiently convey the substance of their work toothers of skill in the art. These operations, while describedfunctionally or logically, are understood to be implemented by computerprograms and/or computing systems. Furthermore, it has also provenconvenient at times to refer to these arrangements of operations assteps or modules or by functional names, without loss of generality.

Unless specifically stated otherwise, as would be apparent from theabove discussion, it is appreciated that throughout the abovedescription, discussions utilizing terms such as “providing”,“performing”, “selecting”, “designating”, “storing”, etc., refer to theaction and processes of a computing system or similar electronic devicethat manipulates and operates on data represented as physical(electronic) quantities within the computing system memories, resisters,caches or other information storage, transmission or display devices.

Certain aspects of the present invention include process steps oroperations and instructions described herein in an algorithmic and/oralgorithmic-like form. It should be noted that the process steps and/oroperations and instructions of the present invention can be embodied insoftware, firmware, and/or hardware, and when embodied in software, canbe downloaded to reside on and be operated from different platforms usedby real time network operating systems.

The present invention also relates to an apparatus or system forperforming the operations described herein. This apparatus or system maybe specifically constructed for the required purposes, or the apparatusor system can comprise a general purpose system selectively activated orconfigured/reconfigured by a computer program stored on a computerprogram product as defined herein that can be accessed by a computingsystem or other device.

Those of skill in the art will readily recognize that the algorithms andoperations presented herein are not inherently related to any particularcomputing system, computer architecture, computer or industry standard,or any other specific apparatus. Various general purpose systems mayalso be used with programs in accordance with the teaching herein, or itmay prove more convenient/efficient to construct more specializedapparatuses to perform the required operations described herein. Therequired structure for a variety of these systems will be apparent tothose of skill in the art, along with equivalent variations. Inaddition, the present invention is not described with reference to anyparticular programming language and it is appreciated that a variety ofprogramming languages may be used to implement the teachings of thepresent invention as described herein, and any references to a specificlanguage or languages are provided for illustrative purposes only andfor enablement of the contemplated best mode of the invention at thetime of filing.

The present invention is well suited to a wide variety of computernetwork systems operating over numerous topologies. Within this field,the configuration and management of large networks comprise storagedevices and computers that are communicatively coupled to similar and/ordissimilar computers and storage devices over a private network, a LAN,a WAN, a private network, or a public network, such as the Internet.

It should also be noted that the language used in the specification hasbeen principally selected for readability, clarity and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention, which is set forth in the claims below.

In addition, the operations shown in the FIG.s are identified using aparticular nomenclature for ease of description and understanding, butother nomenclature is often used in the art to identify equivalentoperations.

In addition, the operations shown in the FIG.s are shown as beingperformed in a particular order for ease of description andunderstanding. However, other orders of operations are possible and thespecific order of operations shown in the FIG.s and discussed above doesnot limit the invention as claimed below.

Therefore, numerous variations, whether explicitly provided for by thespecification or implied by the specification or not, may be implementedby one of skill in the art in view of this disclosure.

1. A computing system implemented process for multiple column datasorting comprising: a computing system; and at least one processorassociated with the computing, the at least one processor executinginstructions for implementing at least part of a computing systemimplemented process for multiple column data sorting, the computingsystem implemented process for multiple column data sorting including:providing a table of data comprising data arranged in columns and rows;providing a user interface for interacting with the table of data;providing a sort icon well, the sort icon well comprising two or morepositionable sort icons; selecting a first column of the table of datato be a primary sort column; moving a first positionable sort icon fromthe sort icon well to the first column, thereby designating the firstcolumn as a primary sort column; performing a primary sort of the datain the table of data based on the designated primary sort column;selecting a second column of the table of data to be a secondary sortcolumn; moving a second positionable sort icon from the sort icon wellto the second column, thereby designating the second column as asecondary sort column; performing a secondary sort of the data in thetable of data based on the designated primary sort column and thedesignated secondary sort column.
 2. The computing system implementedprocess for multiple column data sorting of claim 1, wherein; moving afirst positionable sort icon from the sort icon well to the firstcolumn, thereby designating the first column as a primary sort column,comprises dragging and dropping the first positionable sort icon using amovable interface symbol; and moving a second positionable sort iconfrom the sort icon well to the second column, thereby designating thesecond column as a secondary sort column, comprises dragging anddropping the second positionable sort icon using the movable interfacesymbol.
 3. The computing system implemented process for multiple columndata sorting of claim 1, wherein; the first positionable sort icon is avisually designated primary positionable sort icon; and the secondpositionable sort icon is a visually designated positionable secondarysort icon.
 4. A computing system implemented process for multiple rowdata sorting comprising: a computing system; and at least one processorassociated with the computing, the at least one processor executinginstructions for implementing at least part of a computing systemimplemented process for multiple column data sorting, the computingsystem implemented process for multiple column data sorting including:providing a table of data comprising data arranged in rows and columns;providing a user interface for interacting with the table of data;providing a sort icon well, the sort icon well comprising two or morepositionable sort icons; selecting a first row of the table of data tobe a primary sort row; moving a first positionable sort icon from thesort icon well to the first row, thereby designating the first row as aprimary sort row; performing a primary sort of the data in the table ofdata based on the designated primary sort row; selecting a second row ofthe table of data to be a secondary sort row; moving a secondpositionable sort icon from the sort icon well to the second row,thereby designating the second row as a secondary sort row; performing asecondary sort of the data in the table of data based on the designatedprimary sort row and the designated secondary sort row.
 5. The computingsystem implemented process for multiple row data sorting of claim 4,wherein; moving a first positionable sort icon from the sort icon wellto the first row, thereby designating the first row as a primary sortrow, comprises dragging and dropping the first positionable sort iconusing a movable interface symbol; and moving a second positionable sorticon from the sort icon well to the second row, thereby designating thesecond row as a secondary sort row, comprises dragging and dropping thesecond positionable sort icon using the movable interface symbol.
 6. Thecomputing system implemented process for multiple column data sorting ofclaim 4, wherein; the first positionable sort icon is a visuallydesignated primary sort icon; and the second positionable sort icon is avisually designated secondary sort icon.
 7. A computing systemimplemented process for multiple column data sorting comprising: acomputing system; and at least one processor associated with thecomputing, the at least one processor executing instructions forimplementing at least part of a computing system implemented process formultiple column data sorting, the computing system implemented processfor multiple column data sorting including: providing a table of datacomprising data arranged in columns and rows; providing a user interfacefor interacting with the table of data; providing a movable interfacesymbol through the user interface; performing a defined primary sortaction, thereby transforming the movable interface symbol into a movableprimary sort symbol; selecting a first column of the table of data to bea primary sort column; moving the movable primary sort symbol to thefirst column; activating the movable primary sort symbol, therebydesignating the first column as a primary sort column; performing aprimary sort of the data in the table of data based on the designatedprimary sort column; performing a defined secondary sort action, therebytransforming the movable interface symbol into a movable secondary sortsymbol; selecting a second column of the table of data to be a secondarysort column; moving the movable secondary sort symbol to the secondcolumn; activating the movable secondary sort symbol, therebydesignating the second column as a secondary sort column; performing asecondary sort of the data in the table of data based on the designatedprimary sort column and the designated secondary sort column.
 8. Thecomputing system implemented process for multiple column data sorting ofclaim 7, wherein; the movable interface symbol is a cursor controlled bya user interface device.
 9. The computing system implemented process formultiple column data sorting of claim 7, wherein; the movable interfacesymbol is controlled by at least one user interface device andactivating the movable primary sort symbol and activating the movablesecondary sort symbol is performed through at least one user interfacedevice.
 10. The computing system implemented process for multiple columndata sorting of claim 7, wherein; the movable primary sort symbol is avisually designated movable primary sort symbol; and the movablesecondary sort symbol is a visually designated movable secondary sortsymbol.
 11. A computing system implemented process for multiple row datasorting comprising: a computing system; and at least one processorassociated with the computing, the at least one processor executinginstructions for implementing at least part of a computing systemimplemented process for multiple column data sorting, the computingsystem implemented process for multiple column data sorting including:providing a table of data comprising data arranged in rows and columns;providing a user interface for interacting with the table of data;providing a movable interface symbol through the user interface;performing a defined primary sort action, thereby transforming themovable interface symbol into a movable primary sort symbol; selecting afirst row of the table of data to be a primary sort row; moving themovable primary sort symbol to the first row; activating the movableprimary sort symbol, thereby designating the first row as a primary sortrow; performing a primary sort of the data in the table of data based onthe designated primary sort row; performing a defined secondary sortaction, thereby transforming the movable interface symbol into a movablesecondary sort symbol; selecting a second row of the table of data to bea secondary sort row; moving the movable secondary sort symbol to thesecond row; activating the movable secondary sort symbol, therebydesignating the second row as a secondary sort row; performing asecondary sort of the data in the table of data based on the designatedprimary sort row and the designated secondary sort row.
 12. Thecomputing system implemented process for multiple row data sorting ofclaim 11, wherein; the movable interface symbol is a cursor controlledby a user interface device.
 13. The computing system implemented processfor multiple row data sorting of claim 11, wherein; the movableinterface symbol is controlled by at least one user interface device andactivating the movable primary sort symbol and activating the movablesecondary sort symbol is performed through at least one user interfacedevice.
 14. The computing system implemented process for multiple rowdata sorting of claim 11, wherein; the movable primary sort symbol is avisually designated movable primary sort symbol; and the movablesecondary sort symbol is a visually designated movable secondary sortsymbol.
 15. A computer program product for providing a process formultiple column data sorting comprising: a computer readable medium; andcomputer program code, encoded on the computer readable medium,comprising computer readable instructions for: providing a userinterface for interacting with a table of data, the table of datacomprising data arranged in columns and rows; providing a sort iconwell, the sort icon well comprising two or more positionable sort icons;selecting a first column of the table of data to be a primary sortcolumn; enabling a user to move a first positionable sort icon from thesort icon well to the first column, thereby designating the first columnas a primary sort column; performing a primary sort of the data in thetable of data based on the designated primary sort column; selecting asecond column of the table of data to be a secondary sort column;enabling a user to move a second positionable sort icon from the sorticon well to the second column, thereby designating the second column asa secondary sort column; performing a secondary sort of the data in thetable of data based on the designated primary sort column and thedesignated secondary sort column.
 16. The computer program product forproviding a process for multiple column data sorting of claim 15,wherein; enabling a user to move a first positionable sort icon from thesort icon well to the first column, thereby designating the first columnas a primary sort column, comprises dragging and dropping the firstpositionable sort icon using a movable interface symbol; and enabling auser to move a second positionable sort icon from the sort icon well tothe second column, thereby designating the second column as a secondarysort column, comprises dragging and dropping the second positionablesort icon using the movable interface symbol.
 17. The computer programproduct for providing a process for multiple column data sorting ofclaim 15, wherein; the first positionable sort icon is a visuallydesignated primary positionable sort icon; and the second positionablesort icon is a visually designated secondary positionable sort icon. 18.A computer program product for providing a process for multiple row datasorting comprising: a computer readable medium; and computer programcode, encoded on the computer readable medium, comprising computerreadable instructions for: providing a user interface for interactingwith a table of data, the table of data comprising data arranged incolumns and rows; providing a user interface for interacting with thetable of data; providing a sort icon well, the sort icon well comprisingtwo or more positionable sort icons; selecting a first row of the tableof data to be a primary sort row; enabling a user to move a firstpositionable sort icon from the sort icon well to the first row, therebydesignating the first row as a primary sort row; performing a primarysort of the data in the table of data based on the designated primarysort row; selecting a second row of the table of data to be a secondarysort row; enabling a user to move a second positionable sort icon fromthe sort icon well to the second row, thereby designating the second rowas a secondary sort row; performing a secondary sort of the data in thetable of data based on the designated primary sort row and thedesignated secondary sort row.
 19. The computer program product forproviding a process for multiple row data sorting of claim 18, wherein;enabling a user to move a first positionable sort icon from the sorticon well to the first row, thereby designating the first row as aprimary sort row, comprises dragging and dropping the first positionablesort icon using a movable interface symbol; and enabling a user to movea second positionable sort icon from the sort icon well to the secondrow, thereby designating the second row as a secondary sort row,comprises dragging and dropping the second positionable sort icon usingthe movable interface symbol.
 20. The computer program product forproviding a process for multiple row data sorting of claim 18, wherein;the first positionable sort icon is a visually designated primarypositionable sort icon; and the second positionable sort icon is avisually designated secondary positionable sort icon.
 21. A computerprogram product for providing a process for multiple column data sortingcomprising: a computer readable medium; and computer program code,encoded on the computer readable medium, comprising computer readableinstructions for: providing a user interface for interacting with atable of data, the table of data comprising data arranged in columns androws; providing a user interface for interacting with the table of data;providing a movable interface symbol through the user interface;performing a defined primary sort action, thereby transforming themovable interface symbol into a movable primary sort symbol; selecting afirst column of the table of data to be a primary sort column; enablinga user to move the movable primary sort symbol to the first column;activating the movable primary sort symbol, thereby designating thefirst column as a primary sort column; performing a primary sort of thedata in the table of data based on the designated primary sort column;performing a defined secondary sort action, thereby transforming themovable interface symbol into a movable secondary sort symbol; selectinga second column of the table of data to be a secondary sort column;enabling a user to move the movable secondary sort symbol to the secondcolumn; activating the movable secondary sort symbol, therebydesignating the second column as a secondary sort column; performing asecondary sort of the data in the table of data based on the designatedprimary sort column and the designated secondary sort column.
 22. Thecomputer program product for providing a process for multiple columndata sorting of claim 21, wherein; the movable interface symbol is acursor controlled by a user interface device.
 23. The computer programproduct for providing a process for multiple column data sorting ofclaim 21, wherein; the movable interface symbol is controlled by atleast one user interface device and activating the movable primary sortsymbol and activating the movable secondary sort symbol is performedthrough at least one user interface device.
 24. The computer programproduct for providing a process for multiple column data sorting ofclaim 21, wherein; the movable primary sort symbol is a visuallydesignated movable primary sort symbol; and the movable secondary sortsymbol is a visually designated movable secondary sort symbol.
 25. Acomputer program product for providing a process for multiple row datasorting comprising: a computer readable medium; and computer programcode, encoded on the computer readable medium, comprising computerreadable instructions for: providing a user interface for interactingwith a table of data, the table of data comprising data arranged incolumns and rows; providing a user interface for interacting with thetable of data; providing a movable interface symbol through the userinterface; performing a defined primary sort action, therebytransforming the movable interface symbol into a movable primary sortsymbol; selecting a first row of the table of data to be a primary sortrow; enabling a user to move the movable primary sort symbol to thefirst row; activating the movable primary sort symbol, therebydesignating the first row as a primary sort row; performing a primarysort of the data in the table of data based on the designated primarysort row; performing a defined secondary sort action, therebytransforming the movable interface symbol into a movable secondary sortsymbol; selecting a second row of the table of data to be a secondarysort row; enabling a user to move the movable secondary sort symbol tothe second row; activating the movable secondary sort symbol, therebydesignating the second row as a secondary sort row; performing asecondary sort of the data in the table of data based on the designatedprimary sort row and the designated secondary sort row.
 26. The computerprogram product for providing a process for multiple row data sorting ofclaim 25, wherein; the movable interface symbol is a cursor controlledby a user interface device.
 27. The computer program product forproviding a process for multiple row data sorting of claim 25, wherein;the movable interface symbol is controlled by at least one userinterface device and activating the movable primary sort symbol andactivating the movable secondary sort symbol is performed through atleast one user interface device.
 28. The computer program product forproviding a process for multiple row data sorting of claim 25, wherein;the movable primary sort symbol is a visually designated movable primarysort symbol; and the movable secondary sort symbol is a visuallydesignated movable secondary sort symbol.
 29. A method for multiplecolumn data sorting comprising: providing a table of data comprisingdata arranged in columns and rows on a display device, the displaydevice being associated with a computing system; providing a userinterface for interacting with the table of data on the display device;providing a sort icon well in the user interface, the sort icon wellcomprising two or more positionable sort icons for interacting with thetable of data on the display device; selecting a first column of thetable of data to be a primary sort column; moving a first positionablesort icon from the sort icon well to the first column, therebydesignating the first column as a primary sort column using a userinterface device associated with the computing system; performing aprimary sort of the data in the table of data based on the designatedprimary sort column using a processor associated with the computingsystem; selecting a second column of the table of data to be a secondarysort column; moving a second positionable sort icon from the sort iconwell to the second column, thereby designating the second column as asecondary sort column using a user interface device associated with thecomputing system; performing a secondary sort of the data in the tableof data based on the designated primary sort column and the designatedsecondary sort column using a processor associated with the computingsystem.
 30. The method for multiple column data sorting of claim 29,wherein; moving a first positionable sort icon from the sort icon wellto the first column using a user interface device associated with thecomputing system, thereby designating the first column as a primary sortcolumn, comprises dragging and dropping the first positionable sort iconusing a movable interface symbol using a user interface deviceassociated with the computing system; and moving a second positionablesort icon from the sort icon well to the second column using a userinterface device associated with the computing system, therebydesignating the second column as a secondary sort column, comprisesdragging and dropping the second positionable sort icon using themovable interface symbol using a user interface device associated withthe computing system.
 31. The method for multiple column data sorting ofclaim 29, wherein; the first positionable sort icon is a visuallydesignated primary positionable sort icon; and the second positionablesort icon is a visually designated positionable secondary sort icon. 32.A method for multiple row data sorting comprising: providing a table ofdata comprising data arranged in columns and rows on a display device,the display device being associated with a computing system; providing auser interface for interacting with the table of data on the displaydevice; providing a sort icon well in the user interface, the sort iconwell comprising two or more positionable sort icons for interacting withthe table of data on the display device; selecting a first row of thetable of data to be a primary sort row; moving a first positionable sorticon from the sort icon well to the first row, thereby designating thefirst row as a primary sort row using a user interface device associatedwith the computing system; performing a primary sort of the data in thetable of data based on the designated primary sort row using a processorassociated with the computing system; selecting a second row of thetable of data to be a secondary sort row; moving a second positionablesort icon from the sort icon well to the second row, thereby designatingthe second row as a secondary sort row using a user interface deviceassociated with the computing system; performing a secondary sort of thedata in the table of data based on the designated primary sort row andthe designated secondary sort row using a processor associated with thecomputing system.
 33. The method for multiple row data sorting of claim32, wherein; moving a first positionable sort icon from the sort iconwell to the first row using a user interface device associated with thecomputing system, thereby designating the first row as a primary sortrow, comprises dragging and dropping the first positionable sort iconusing a movable interface symbol; and moving a second positionable sorticon from the sort icon well to the second row using a user interfacedevice associated with the computing system, thereby designating thesecond row as a secondary sort row, comprises dragging and dropping thesecond positionable sort icon using the movable interface symbol. 34.The method for multiple column data sorting of claim 32, wherein; thefirst positionable sort icon is a visually designated primarypositionable sort icon; and the second positionable sort icon is avisually designated secondary positionable sort icon.
 35. A method formultiple column data sorting comprising: providing a table of datacomprising data arranged in columns and rows on a display device, thedisplay device being associated with a computing system; providing auser interface for interacting with the table of data on the displaydevice; providing a movable interface symbol through the user interface;performing a defined primary sort action, thereby transforming themovable interface symbol into a movable primary sort symbol; selecting afirst column of the table of data to be a primary sort column; movingthe movable primary sort symbol to the first column; activating themovable primary sort symbol, thereby designating the first column as aprimary sort column; performing a primary sort of the data in the tableof data based on the designated primary sort column; performing adefined secondary sort action, thereby transforming the movableinterface symbol into a movable secondary sort symbol; selecting asecond column of the table of data to be a secondary sort column; movingthe movable secondary sort symbol to the second column; activating themovable secondary sort symbol, thereby designating the second column asa secondary sort column; performing a secondary sort of the data in thetable of data based on the designated primary sort column and thedesignated secondary sort column.
 36. The method for multiple columndata sorting of claim 35, wherein; the movable interface symbol is acursor controlled by a user interface device.
 37. The method formultiple column data sorting of claim 35, wherein; the movable interfacesymbol is controlled by at least one user interface device andactivating the movable primary sort symbol and activating the movablesecondary sort symbol is performed through at least one user interfacedevice.
 38. The method for multiple column data sorting of claim 35,wherein; the movable primary sort symbol is a visually designatedmovable primary sort symbol; and the movable secondary sort symbol is avisually designated movable secondary sort symbol.
 39. A method formultiple row data sorting comprising: providing a table of datacomprising data arranged in columns and rows on a display device, thedisplay device being associated with a computing system; providing auser interface for interacting with the table of data on the displaydevice; providing a movable interface symbol through the user interface;performing a defined primary sort action, thereby transforming themovable interface symbol into a movable primary sort symbol; selecting afirst row of the table of data to be a primary sort row; moving themovable primary sort symbol to the first row; activating the movableprimary sort symbol, thereby designating the first row as a primary sortrow; performing a primary sort of the data in the table of data based onthe designated primary sort row; performing a defined secondary sortaction, thereby transforming the movable interface symbol into a movablesecondary sort symbol; selecting a second row of the table of data to bea secondary sort row; moving the movable secondary sort symbol to thesecond row; activating the movable secondary sort symbol, therebydesignating the second row as a secondary sort row; performing asecondary sort of the data in the table of data based on the designatedprimary sort row and the designated secondary sort row.
 40. The methodfor multiple row data sorting of claim 39, wherein; the movableinterface symbol is a cursor controlled by a user interface device. 41.The method for multiple row data sorting of claim 39, wherein; themovable interface symbol is controlled by at least one user interfacedevice and activating the movable primary sort symbol and activating themovable secondary sort symbol is performed through at least one userinterface device.
 42. The method for multiple row data sorting of claim39, wherein; the movable primary sort symbol is a visually designatedmovable primary sort symbol; and the movable secondary sort symbol is avisually designated movable secondary sort symbol.